var opportunityBs = $('#opportunityBs').text();  //新增商机   1从商机列表的入口  2 从联系人详情的入口 3 从客户详情的入口 4-我的客户（转商机）  带有bs,contactId,customerId
var contactIdAdd = $('#contactIdAdd').text();
var customerIdAdd = $('#customerIdAdd').text();
var customerName = $('#customerName').text();
$(function () {
    // 解决table中点击行选中与checkbox冲突问题
    $('table').on('load-success.bs.table', function (e,data) {
        $(e.target).find('label.lyear-checkbox').on('click', function (e) {
            e.stopPropagation();
        })
    });

    // 初始化下拉菜单选择控件
    $('#addOpportunityModel').find('select').selectpicker({
        // liveSearch: true,
        liveSearchPlaceholder: '请输入要搜索的内容',
        sanitize: true,
        size: 10,
        windowPadding: '10'
    });

    /**
     * 功能：初始化客户列表
     * 参数：1-从商机列表的入口  2-从联系人详情的入口
     * */
    if(opportunityBs =='1'){
        //客户列表下拉框
        $.ajax({
            type: 'POST',
            dataType: "json",
            url: '/customerController/getCustomerList',
            cache : false,
            data:{},
            // async : false,
            success: (function (data) {
                if (data.code == "000000") {
                    if (data.data.length == 0) {
                        // 客户列表为空时，显示新增客户按钮
                        $("#customerId").selectpicker('destroy').hide(0).after('<button type="button" class="btn btn-success btn-label" onclick="addCustomer()"><label><i class="mdi mdi-plus"></i></label>新增客户</button>')
                        $('#addCustomer').on('click', function () {
                            $('#addCustomerModel').modal('show');
                        })
                    } else {
                        // 客户列表不为空时，显示客户列表内容
                        var html = '';
                        $.each(data.data, function(n, value) {
                            // 判断错误数据，错误则不显示在列表中
                            if (value.memberErrorData != 1) {
                                html += "<option value=" + value.customerId + ">" +  value.customerName + "</option>";
                            }
                        });
                        $("#customerId").html(html).selectpicker('refresh').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {      // 内容变更触发
                            $('#contactId').attr('disabled', false);
                            contactByCustomerIdList();
                        });
                    }
                } else {
                    promptInfo("数据加载错误，请刷新页面重试！");
                }
            }),
            error: (function (res) {
                promptInfo("数据请求失败，请刷新页面重试！");
            })
        });
    }else if (opportunityBs =='2') {
        $("#customerIdHide").attr("style","display:none;");
        $('#contactId').attr('disabled', false);
        contactByCustomerIdList();
        //$("#contactIdHide").attr("style","display:none;");
    } else if (opportunityBs =='3' || opportunityBs =='4') { // 根据客户ID和客户名称跳转到新增商机页面的类型
        var optionNode = '<option value="' + customerIdAdd + '">' + customerName + '</option>';
        var customerSelect = $("#customerId");
        customerSelect.html(optionNode).selectpicker('refresh');
        customerSelect.selectpicker('val', customerIdAdd);
        customerSelect.prop('disabled', true).selectpicker('refresh');

        $('#contactId').attr('disabled', false);
        contactByCustomerIdList();
    }

    // 商机产品列表
    $('#opportunityProduct').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                  // 是否显示行间隔色
        sortable: true,                 // 是否启用排序
        pagination: false,              // 是否显示分页
        minimumCountColumns: 2,         // 最少要显示的列数
        undefinedText: '暂无数据',        // cell没有值时显示
        uniqueId: 'customerProductId',
        idField: 'customerProductId',
        columns: [
            {title: '主键', field: 'customerProductId', visible: false},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '产品原价', field: 'productOriginalPrice', align: 'left', valign: 'middle', events: productFormat.priceCategoryEvent, formatter: productFormat.priceChose},
            {title: '产品单价', field: 'productUnitPrice', align: 'left', valign: 'middle', events: productFormat.priceCategoryEvent, formatter: productFormat.priceChose},
            {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle', events: productFormat.priceCategoryEvent, formatter: productFormat.priceChose},
            {title: '当前报价', field: 'productDiscountPrice', align: 'left', valign: 'middle', width: '160', events: productFormat.priceEvent, formatter: productFormat.discountPrice},
            {title: '数量', field: 'productNumber', align: 'left', valign: 'middle', width: '160', events: productFormat.numberEvent, formatter: productFormat.number},
            {title: '总计', field: 'productTotal', align: 'left', valign: 'middle', width: '160', formatter: productFormat.total},
            {title: '操作', field: 'productOperation', align: 'right', valign: 'middle', width: '100', formatter: productFormat.operation},
            {title: '产品编码', field: 'productCode', visible: false},
        ],
        onPostBody: function (data) {
            // console.log(data);
            /*var valuationTotal = 0;        // 计价总计 =
            var discountTotal = 0;         // 折扣总价格
            for (var i = 0; i < data.length; i++) {
                // 计算无折扣价格
                if (data[i].memberProductId) {

                } else {

                }
                valuationTotal += data[i].productTotalPrice;

                // discountTotal += data[i].productDiscountPrice * data[i].productNumber;
                if (data[i].productDiscountPrice == '') {
                    discountTotal += data[i].productTotalPrice;
                } else {
                    discountTotal += data[i].productDiscountPrice * data[i].productNumber;
                }
            }
            console.log(valuationTotal, discountTotal)
            $('#totalPrice').html(valuationTotal);                           // 计价总计价格
            $('#discount').html(valuationTotal - discountTotal);             // 优惠后价格总计*/

        },
    });
    // 添加产品弹窗调用产品接口
    // $('#addProductModal').modal('show');
    $('#addProductModal').on('show.bs.modal', function () {
        $('#memberProductListTable').bootstrapTable('destroy');
        $('#memberProductListTable').bootstrapTable({
            classes: 'table table-bordered table-hover table-striped',
            url: '/customerMemberProduct/selectSjCustomerMemberProductVOList',  // 请求地址
            method: 'post',//请求方式
            contentType: "application/x-www-form-urlencoded",//请求内容类型
            dataType: "json",                   // 数据类型
            striped: true,                      // 是否显示行间隔色
            sortable: true,                     // 是否启用排序
            sortOrder: "desc",                  // 排序方式
            sortName: 'sellingCardPrice',       // 排序字段
            cache: false,                       // 是否使用缓存
            showColumns: false,                 // 显示隐藏列
            showRefresh: false,                 // 显示刷新按钮
            showToggle: false,                  // 切换显示样式
            showFooter: false,                  // 显示Table脚部
            pagination: true,                   // 是否显示分页
            showPaginationSwitch: false,        // 是否显示分页按钮
            clickToSelect: true,                // 是否启用点击选中行
            maintainSelected: true,             // 分页是否保留选中
            singleSelect: false,
            minimumCountColumns: 2,             // 最少要显示的列数
            undefinedText: '',                  // cell没有值时显示
            sidePagination: "server",           // 分页方式：client客户端分页，server服务端分页

            serverSelected: true,// 开启后端分页记住已选项功能
            serverSelectedField: "memberProductId",// 已选项的唯一识别主键

            // serverSort: true,
            uniqueId: 'memberProductId',
            idField: 'memberProductId',
            pageSize: 5,                        // 每页的记录行数
            pageNumber: 1,                      // 初始化加载第1页，默认第1页
            pageList: "[5, 10, 15, 20]",        // 可供选择的每页的行数

            queryParams: function(params) {
                params.pageSize = params.limit;
                params.pageIndex = (params.offset / params.limit) + 1;
                params.sortName = params.sort;                  //排序列名
                params.sortOrder = params.order;                //排序方式
                params.tag = 1;

                return params
            },//查询参数
            columns: [
                {title: '主键', field: 'customerProductId', visible: false,
                    formatter: function (value, row) {
                        return row.memberProductId;
                    }
                },
                {checkbox: true, visible: true},
                {title: '会员卡名称', field: 'memberCardName', align: 'left', valign: 'middle'},
                {title: '会员产品编码', field: 'memberProductCode', align: 'left', valign: 'middle'},
                {title: '售卡价格', field: 'sellingCardPrice', sortable: true, align: 'left', valign: 'middle'},
            ],
            responseHandler: function (result) {
                if(result.code == "000000") {
                    var obj = {
                        "rows": result.data,
                        "total": result.totalRecords//总条数
                    };
                } else {
                    var obj = {
                        "total": 0,
                        "rows": [],
                    }
                }
                return obj;
            },
            onLoadSuccess: function (data) {
                // console.log(data)
            },
            onLoadError: function (status) {
                if (status == 403) {
                    alert("权限不足！禁止访问！");
                } else {
                    //加载失败时执行
                    alert("加载失败！");
                }
            },
            formatLoadingMessage: function () {
                return "请稍等，加载中...";
            },
            formatNoMatches: function () {
                return '无符合条件的记录';
            },
        });
        $('#nomemberProductListTable').bootstrapTable('destroy');
        $('#nomemberProductListTable').bootstrapTable({
            classes: 'table table-bordered table-hover table-striped',
            url: '/customerProduct/selectCustomerProductList',
            method: 'post',//请求方式
            contentType: "application/x-www-form-urlencoded",//请求内容类型
            dataType: "json",                   // 数据类型
            striped: true,                      // 是否显示行间隔色
            sortable: true,                     // 是否启用排序
            sortOrder: "desc",                  // 排序方式
            sortName: 'productName',            // 排序字段
            cache: false,                       // 是否使用缓存
            showColumns: false,                 // 显示隐藏列
            showRefresh: false,                 // 显示刷新按钮
            showToggle: false,                  // 切换显示样式
            showFooter: false,                  // 显示Table脚部
            pagination: true,                   // 是否显示分页
            showPaginationSwitch: false,        // 是否显示分页按钮
            clickToSelect: true,                // 是否启用点击选中行
            maintainSelected: true,             // 分页是否保留选中
            singleSelect: false,
            minimumCountColumns: 2,             // 最少要显示的列数
            undefinedText: '',                  // cell没有值时显示
            sidePagination: "server",           // 分页方式：client客户端分页，server服务端分页

            serverSelected: true,// 开启后端分页记住已选项功能
            serverSelectedField: "customerProductId",// 已选项的唯一识别主键

            // serverSort: true,
            uniqueId: 'customerProductId',
            idField: 'customerProductId',
            pageSize: 5,                        // 每页的记录行数
            pageNumber: 1,                      // 初始化加载第1页，默认第1页
            pageList: "[5, 10, 15, 20]",        // 可供选择的每页的行数

            queryParams: function(params) {
                params.pageSize = params.limit;
                params.pageIndex = (params.offset / params.limit) + 1;
                params.sortName = params.sort;                  //排序列名
                params.sortOrder = params.order;                //排序方式
                params.tag = 0;

                return params
            },//查询参数
            columns: [
                {title: '主键', field: 'customerProductId', visible: false},
                {checkbox: true, visible: true},
                {title: '产品名称',field: 'productName', sortable: true, align: 'left', valign: 'middle'},
                {title: '产品原价', field: 'productOriginalPrice', align: 'left',valign: 'middle'},
                {title: '产品单价', field: 'productUnitPrice', align: 'left',valign: 'middle'},
                {title: '产品会员价', field: 'productMemberPrice', align: 'left', valign: 'middle'},
            ],
            responseHandler: function (result) {
                if(result.code == "000000") {
                    var obj = {
                        "rows": result.data,
                        "total": result.totalRecords//总条数
                    };
                } else {
                    var obj = {
                        "total": 0,
                        "rows": [],
                    }
                }
                return obj;
            },
            onLoadSuccess: function (data) {
                // console.log(data)
            },
            onLoadError: function (status) {
                if (status == 403) {
                    alert("权限不足！禁止访问！");
                } else {
                    //加载失败时执行
                    alert("加载失败！");
                }
            },
            formatLoadingMessage: function () {
                return "请稍等，加载中...";
            },
            formatNoMatches: function () {
                return '无符合条件的记录';
            },
        });
    }).on('hide.bs.modal', function () {
        $(this).find('.input-group input[type="text"]').val('');
        $('#productTab li:eq(0) a').tab('show')
    });
    $('#memberProductSearch').on('click', function () {
        $('#memberProductListTable').bootstrapTable('refreshOptions', {
            queryParams: function (params) {
                params.pageSize = params.limit;
                params.pageIndex = (params.offset / params.limit) + 1;
                params.sortName = params.sort;                  //排序列名
                params.sortOrder = params.order;                //排序方式
                params.tag = 1;

                params.memberCardName = $('#searchMemberProductName').val();
                return params;
            }
        })
    });
    $('#nomemberProductSearch').on('click', function () {
        $('#nomemberProductListTable').bootstrapTable('refreshOptions', {
            queryParams: function (params) {
                params.pageSize = params.limit;
                params.pageIndex = (params.offset / params.limit) + 1;
                params.sortName = params.sort;                  //排序列名
                params.sortOrder = params.order;                //排序方式
                params.tag = 0;

                params.productName = $('#searchNomemberProductName').val();
                return params;
            }
        })
    });
    $('#addProductModal .nav-tabs a[href="#member"]').on('click', function () {
        $('#searchMemberProductName').val('');
        $('#memberProductListTable').bootstrapTable('refresh');
    })
    $('#addProductModal .nav-tabs a[href="#nonmember"]').on('click', function () {
        $('#searchNomemberProductName').val('');
        $('#nomemberProductListTable').bootstrapTable('refresh');
    })
});

/**
 * 功能：添加产品数据到商机产品表格
 * */
function addProductRow() {
    var modal = $('#addProductModal');
    // 会员产品选中数据
    var memberSelectArr = $('#memberProductListTable').bootstrapTable("getServerSelected",true);
    // 非会员产品选中数据
    var nomemberSelectArr = $('#nomemberProductListTable').bootstrapTable("getServerSelected",true);

    // 判断是否选择数据，未选择数据直接关闭弹窗
    if (memberSelectArr.length == 0 && nomemberSelectArr.length == 0) {
        modal.modal('hide');
        return;
    }

    // 选中数据集合
    var selectRowData = [];

    // 格式化会员产品数据
    for (var i in memberSelectArr) {
        var newMemberSelectData = {};
        newMemberSelectData.customerProductId = memberSelectArr[i].memberProductId;        // 产品ID
        newMemberSelectData.productName = memberSelectArr[i].memberCardName;               // 产品名称
        newMemberSelectData.productCode = memberSelectArr[i].memberProductCode;            // 产品编码
        newMemberSelectData.productCategories = 1;                                         // 产品类别 1-会员
        newMemberSelectData.productOriginalPrice = '';                                     // 产品原价
        newMemberSelectData.productUnitPrice = '';                                         // 产品单价
        newMemberSelectData.productMemberPrice = memberSelectArr[i].sellingCardPrice;      // 产品会员价
        newMemberSelectData.productDiscountPrice = memberSelectArr[i].sellingCardPrice;    // 当前报价
        newMemberSelectData.productNumber = 1;                                             // 数量
        newMemberSelectData.chose = 'productMemberPrice';                                  // 选择的价格类型
        selectRowData.push(newMemberSelectData);
    }

    // 格式化非会员产品数据
    for (var i in nomemberSelectArr) {
        var newNomemberSelectData = {};
        newNomemberSelectData.customerProductId = nomemberSelectArr[i].customerProductId;           // 产品ID
        newNomemberSelectData.productName = nomemberSelectArr[i].productName;                       // 产品名称
        newNomemberSelectData.productCode = nomemberSelectArr[i].productCode;                       // 产品编码
        newNomemberSelectData.productCategories = 0;                                                // 产品类别 0-非会员
        newNomemberSelectData.productOriginalPrice = nomemberSelectArr[i].productOriginalPrice;     // 产品原价
        newNomemberSelectData.productUnitPrice = nomemberSelectArr[i].productUnitPrice;             // 产品单价
        newNomemberSelectData.productMemberPrice = nomemberSelectArr[i].productMemberPrice;         // 产品会员价
        newNomemberSelectData.productDiscountPrice = nomemberSelectArr[i].productOriginalPrice;     // 当前报价
        newNomemberSelectData.productNumber = 1;                                                    // 数量
        newNomemberSelectData.chose = 'productOriginalPrice';                                       // 选择的价格类型
        selectRowData.push(newNomemberSelectData);
    }

    console.log('添加到商机产品表的数据：', selectRowData);

    // 商机产品表格对象
    var $targetTable = $('#opportunityProduct');
    // 商机产品表格数据
    var targetTabelDate = $targetTable.bootstrapTable('getData', true);

    if (targetTabelDate.length == 0) {
        // 目标表格为空时直接插入行
        $targetTable.bootstrapTable('append', selectRowData);
    } else {
        var targetTableDateStr =  JSON.stringify(targetTabelDate);
        // 目标表格不为空，则判断所选数据是否已存在于表格中
        for (var i = 0; i < selectRowData.length; i++) {
            if (targetTableDateStr.indexOf('"customerProductId":"' + selectRowData[i].customerProductId + '"') != -1) {
                console.log('已存在', selectRowData[i]);
            } else {
                console.log('不存在', selectRowData[i]);
                $targetTable.bootstrapTable('append', selectRowData[i]);
            }
        }
    }
    modal.modal('hide');
}

/**
 * 功能：商机产品表自定义内容
 * */
var productFormat = {
    // 产品价格
    priceChose: function (value, row, index, field) {
        if (row.productCategories == 1) {
            // 会员数据展示
            if (field == 'productMemberPrice') {
                var html = '<label class="lyear-radio radio-inline radio-primary"><input type="radio" data-target="productMemberPrice" name="price' + index + '" checked><span>' + value +'</span></label>';
                return value;
            } else {
                return '-';
            }
        } else {
            // 非会员数据展示
            var type = row.chose || 'productUnitPrice';
            var html = '';
            if (field == type) {
                html += '<label class="lyear-radio radio-inline radio-primary"><input type="radio" data-target="' + field + '" name="price' + index + '" checked><span>' + value +'</span></label>';
            } else {
                html += '<label class="lyear-radio radio-inline radio-primary"><input type="radio" data-target="' + field + '" name="price' + index + '"><span>' + value +'</span></label>';
            }
            return value;
        }
    },
    // 产品优惠后价格
    discountPrice: function (value, row, index, field) {
        // 优惠价为空 隐藏上传审批图片，否则显示
        // value == '' ? $('.approval').hide(0) : $('.approval').show(0);
        // var discountPriceValue = value || '';
        var discountPriceValue;
        value == undefined ? discountPriceValue = '' : discountPriceValue = value;
        if (discountPriceValue != '') {
            discountPriceValue = parseFloat(discountPriceValue);
        }
        // console.log(discountPriceValue);
        var inputId = 'productDiscountPrice' + index;
        var inputHtml = '<input type="text" value="' + discountPriceValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.productDiscountPrice = discountPriceValue || $(inputHtml).val();

        return inputHtml;
    },
    // 产品数量
    number: function (value, row, index, field) {
        // console.log(value, row, index, field);
        var numberValue = Number(value) || 1;
        var inputId = 'productNumber' + index;
        var inputHtml = '<input type="text" value="' + numberValue + '" placeholder="请输入" class="form-control" id="' + inputId + '">';
        row.productNumber = numberValue || $(inputHtml).val();

        return inputHtml;
    },
    // 总计
    total: function (value, row, index, field) {
        if (row.productCategories == 1) {
            // 会员产品总计
            if (row.productDiscountPrice == '') {
                // 当前报价为空时，总计价格 = 会员价 * 数量
                row.productTotal = row.productMemberPrice * row.productNumber
                return row.productTotal;
            } else {
                return row.productDiscountPrice * row.productNumber;
            }
        } else {
            if (row.productDiscountPrice == '') {
                // 当前报价为空时，总计价格 = 产品单价 * 数量
                row.productTotal = row.productUnitPrice * row.productNumber
                return row.productTotal;
            } else {
                return row.productDiscountPrice * row.productNumber;
            }

            // 价格默认为产品单价
            /*var price = row[row.chose] || row.productUnitPrice;
            // console.log(price);
            var rowTotal = price * row.productNumber;
            row.productTotalPrice = rowTotal;
            return rowTotal;*/
        }
    },
    // 操作
    operation: function (value, row, index, field) {
        // console.log(value, row, index, field);
        return '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.customerProductId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
    },
    // 价格选择操作
    priceCategoryEvent: {
        'change input': function (e, value, row, index) {
            var inputNode = $(e.target)[0];
            row.chose = $(inputNode).data('target');
            productFormat.priceChose(value, row);
            // 修改价格类型后，清空产品优惠后价格
            productFormat.discountPrice('', row);
            productFormat.total(value, row, index, 'productTotal');
            $('#opportunityProduct').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    },
    // 优惠后价格 自定义事件
    priceEvent: {
        'change input': function (e, value, row, index) {
            var newValue = productPriceTest(e, value, row);
            if (newValue == 'stop') return;

            productFormat.discountPrice(newValue, row);
            $('#opportunityProduct').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    },
    // 数量 自定义事件
    numberEvent: {
        'change input': function (e, value, row, index) {
            // 对数值进行判断
            var newValue = numberTest(e, value);
            if (newValue == 'stop') return;

            productFormat.number(newValue, row);
            productFormat.total(value, row, index, 'productTotal');

            $('#opportunityProduct').bootstrapTable('updateRow', {
                index,
                replace: true,
                row
            });
        }
    }
};

/**
 * 功能：产品数量判断
 * */
function numberTest(e, preValue) {
    // 移除字符串的空格
    var newVal = $(e.target).val().replace(/\s/g,"");
    // console.log(newVal == preValue)
    if (newVal == '0') {
        console.log('输入内容为0，数量必须大于等于1');
        promptInfo('数量必须大于等于 1，请重新输入！');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (newVal % 1 !== 0 || newVal < 0 || newVal == '') {
        console.log('输入内容非整数或者小于0');
        promptInfo('数量只能为正整数，请重新输入！');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (newVal == preValue) {
        console.log('数值未改变');
        $(e.target).val(preValue);
        return 'stop';
    }
    return newVal;
}

/**
 * 功能：产品列表价格判断
 * */
function productPriceTest(e, preValue, row) {
    // 移除字符串的空格
    var newVal = $(e.target).val().replace(/\s/g,"");

    if (newVal == '') {
        console.log('输入为空值');
        return '';
    }
    if (newVal == preValue) {
        console.log('数值未改变');
        $(e.target).val(preValue);
        return 'stop';
    }
    if (isNaN(newVal) || newVal < 0) {
        console.log('输入内容非数字或者小于0');
        promptInfo("请输入正确的价格！");
        $(e.target).val(preValue);
        return 'stop';
    } else {
        if (row.productCategories == 1) {
            if (parseFloat(newVal) > row.productMemberPrice) {
                promptInfo('产品优惠后价格不能高于会员卡价格，请重新输入！');
                $(e.target).val(preValue);
                return 'stop';
            }
        } else {
            // 判断输入值是否高于 所选择的价格
            /*if (row.chose && parseFloat(newVal) > row[row.chose]) {
                var priceCatory;
                switch (row.chose) {
                    case 'productOriginalPrice' : priceCatory = '产品原价';
                        break;
                    case 'productUnitPrice' : priceCatory = '产品单价';
                        break;
                    case 'productMemberPrice' : priceCatory = '产品会员价';
                        break;
                }
                promptInfo('产品优惠后价格不能高于所选 "' + priceCatory + '" 价格，请重新输入！');
                $(e.target).val(preValue);
                return 'stop';
            }
            if (!row.chose && parseFloat(newVal) > row.productUnitPrice) {
                promptInfo('产品优惠后价格不能高于 "产品单价" 价格，请重新输入！');
                $(e.target).val(preValue);
                return 'stop';
            }*/
        }
    }
    return parseFloat(newVal).toFixed(2);
}

/**
 * 功能：删除行
 * 参数：fieldId - 删除行的目标列字段名称  value - 目标字段值
 * */
function removeRow(_this, uniqueId) {
    $(_this).parents('table').bootstrapTable('removeByUniqueId', uniqueId);
}

function refreshSelect(obj) {
    $(obj).selectpicker('refresh');
}

/**
 * 功能：根据客户id查询联系人列表
 * */
function  contactByCustomerIdList(){
    var customerId = $('#customerId').val();
    if(opportunityBs == '2'){
        customerId = customerIdAdd;
    }
    //联系人列表下拉框
    $.ajax({
        type: 'POST',
        dataType: "json",
        url: '/opportunity/contactByCustomerIdList',
        cache : false,
        data:{
            customerId : customerId
        },
        async : false,
        success: (function (data) {
            if (data.code == "000000") {
                $('#addContactBtn').remove();      // 初始化删除添加按钮
                if (data.data.length == 0) {
                    $("#contactId").selectpicker('destroy').hide(0).after('<button type="button" id="addContactBtn" class="btn btn-success btn-label" onclick="addContact()"><label><i class="mdi mdi-plus"></i></label>新增联系人</button>')
                } else {
                    var html = '';
                    $.each(data.data, function(n, value) {
                        html += "<option value=" + value.contactId + ">" +  value.contactName+"_"+value.contactInformation + "</option>";
                    });
                    $("#contactId").selectpicker('destroy').html(html).selectpicker('refresh');
                }
            } else {
                alert("请求失败");
            }
        }),
        error: (function (res) {
            alert("请求失败");
        })
    });
}

/*var productBs = "";
//1从商机列表的入口  2 从联系人详情的入口  带有bs,contactId,customerId
if(opportunityBs == "1"){
    productBs = "1";
}else{
    productBs = "2";
}

/!**
 * 新增产品点击事件
 *!/
function addCustomerProduct(){
    // productBs  产品返回标识 1商机列表新增商机触发-->新增产品  2联系人详情新增商机-->新增产品 暂不做跳转  3客户详情商机-->新增商机-->新增产品  暂不做跳转
    //           没值是从产品列表新增跳转和菜单新增产品
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增产品',
        url : "/front/productManager/addProduct?productBs="+productBs
    }, true)
}*/

/**
 * 功能：新增客户
 */
function addCustomer(){
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增客户',
        url : "/front/customerManager/userAddCustomer?customerBs="+1
    }, true);
}

/**
 * 功能：新增联系人
 */
function addContact(){
    var customerId = $('#customerId').val();
    parent.$(parent.document).data('multitabs').create({
        iframe : true,
        title : '新增联系人',
        url : "/front/contactManager/addContact?customerId=" + customerId
    }, true);
}

/**
 * 功能：创建商机
 */
function saveOpportunity() {
    var customerId = contactIdAdd;
    var contactInfo = $('#contactId option:selected').text().split('_');
    var contactId = $('#contactId').val();
    var opportunityTitle = $('#opportunityTitle').val();                // 商机名称
    var opportunitySource = $('#opportunitySource').val();              // 商机来源
    var customerId = $('#customerId').val();                            // 客户表主键
    var contactName = contactInfo[0];                                   // 联系人名称
    var contactInformation = contactInfo[1];                            // 联系方式
    var contactPosition = $('#contactPosition').val();                  // 联系人职务: 0公司管理  1财务  2人力 3其他
    var opportunityTp = $('#opportunityTp').val();                      // 商机类型 1:续费 2:新会员 3:单词 4:证书 5:线上单品 6:高端班 7:内训 8:咨询 9:其他
    var estimatedSalesAmount = $('#estimatedSalesAmount').val();        // 预计销售金额

    var talbeList = $('#opportunityProduct').bootstrapTable('getData', false);
    var productArr = [];
    for (var i = 0; i < talbeList.length; i++) {
        var choseType;
        switch (talbeList[i].chose) {
            case 'productOriginalPrice':
                choseType = 0;
                break;
            case 'productUnitPrice':
                choseType = 1;
                break;
            case 'productMemberPrice':
                choseType = 2;
                break;
            default :
                choseType = '';
                break;
        }
        var arrList = {
            chose: choseType,
            customerProductId: talbeList[i].customerProductId,              // 产品ID
            productCode: talbeList[i].productCode,                          // 产品编码
            productName: talbeList[i].productName,                          // 产品名称
            productCategories: talbeList[i].productCategories,              // 产品分类：0-非会员；1-会员；
            productOriginalPrice: talbeList[i].productOriginalPrice,        // 产品原价
            productUnitPrice: talbeList[i].productUnitPrice,                // 产品单价
            productMemberPrice: talbeList[i].productMemberPrice,            // 产品会员价
            productCurrentPrice: talbeList[i].productDiscountPrice,         // 当前报价
            productNumber: talbeList[i].productNumber,                      // 产品数量
        }
        if (arrList.productCurrentPrice == '') {
            promptInfo('商机产品当前报价不能为空！');
            return;
        }
        productArr[i] = arrList;
    }

    console.log('创建商机的商机产品数据：', productArr);

    // 商机名称不能为空
    if(!opportunityTitle){
        promptInfo("商机名称不能为空，请输入商机名称！");
        return;
    }
    // 商机来源不能为空
    if(!opportunitySource){
        promptInfo("商机来源不能为空，请输入商机来源！");
        return;
    }
    // 客户名称不能为空
    if(!customerId){
        promptInfo("客户名称不能为空，请选择！");
        return;
    }
    // 联系人不能为空
    if(!contactName){
        promptInfo("未选择联系人，请选择！");
        return;
    }
    // 联系人职务不能为空
    if(!contactPosition){
        promptInfo("联系人职务不能为空，请选择！");
        return;
    }
    //商机类型
    if(!opportunityTp){
        promptInfo("商机类型不能为空，请选择！");
        return;
    }
    //预计销售金额为空判断
    var priceReg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/;
    var pricePattern = new RegExp(priceReg);
    if (!estimatedSalesAmount) {
        promptInfo("预计销售金额不能为空，请输入预计销售金额！");
        return;
    }else{
        if(!pricePattern.test(estimatedSalesAmount)) {
            promptInfo("请输入正确的预计销售金额！");
            return;
        }
    }

    var jsonData = {
        opportunityTitle,       // 商机名称
        opportunitySource,      // 商机来源
        customerId,             // 客户表主键
        contactName,            // 联系人名称
        contactId,              // 联系人Id
        contactInformation,     // 联系方式
        contactPosition,        // 联系人职务
        opportunityTp,          //商机类型
        estimatedSalesAmount,   // 预计销售金额
        list: productArr        // 商机产品列表
    };
    console.log(jsonData);

    $.ajax({
        url: '/opportunity/addOpportunity',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if (data.code == "000000") {
                $.alert("操作成功！");
                var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('li.active');
                var navTab = parent.$multitabs._getNavTab($thisTabs);
                closeTab(navTab);
                if(opportunityBs == "1" || opportunityBs == "4"){ // 4:我的客户列表
                    openTab("商机列表","/front/opportunityManager/userOpportunityForm");
                    refreshActivePane('/front/opportunityManager/userOpportunityForm');
                }
                if (opportunityBs =="2") {
                    openTab("联系人详情","/front/user/contactManager/contactDetail?contactId=" + contactIdAdd);
                    refreshActivePane("/front/user/contactManager/contactDetail?contactId=" + contactIdAdd);
                }
                if (opportunityBs =="3") {
                    var url = "/front/user/customerManager/customerDetail?customerId=" + customerId;
                    openTab("客户详情", url);
                    var customerIframe = $(window.parent.document).find('iframe[src="' + url + '"]')[0];
                    customerIframe.contentWindow.refreshTable("opportunityListDetail");
                    // refreshActivePane("/front/user/customerManager/customerDetail?customerId=" + customerId);
                }
                // if (opportunityBs =="4") {
                //     openTab("我的客户","/front/customerManager/myCustomerPool");
                //     refreshActivePane('/front/customerManager/myCustomerPool');
                // }
                delStorageAndRemove(navTab);

            }else {
                alert("操作失败");
            }
        }),
        error: (function () {
            alert("失败");
        })
    });
}

/**
 * 功能：重置刷新页面
 * */
function cancelAddOpportunity(){
    window.location.reload();
}

/**
 * 消息提示弹出框
 * @param content  ---提示内容
 */
function promptInfo(content) {
    $.alert({
        title: '温馨提示',
        content: content,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary'
            }
        }
    });
}


(function ($) {
    'use strict';

    //给组件增加默认参数列表
    $.extend($.fn.bootstrapTable.defaults, {
        serverSelected:false,
        serverSelectedField:"id",//做统计的主键
    });

    //给组件增加方法
    $.fn.bootstrapTable.methods.push('setServerSelected','getServerSelected');

    //调用bootstrapTable组件的构造器得到对象
    var BootstrapTable = $.fn.bootstrapTable.Constructor,
        _initData = BootstrapTable.prototype.initData,
        _initBody = BootstrapTable.prototype.initBody,
        _checkAll_ = BootstrapTable.prototype.checkAll_,
        _check_ = BootstrapTable.prototype.check_;

    //重写bootstrapTable的initData方法
    BootstrapTable.prototype.initData = function () {
        _initData.apply(this, Array.prototype.slice.apply(arguments));
        if(this.options.serverSelected){
            var that = this;
            if(!that.serverSelectedDate){
                that.serverSelectedDate = {
                    "rows":[],
                    "id":[]
                }
            };
            $(that.options.data).each(function(index,row){
                if($.inArray(row[that.options.serverSelectedField],that.serverSelectedDate.id)>-1){
                    row[that.header.stateField] = true;
                }
            });
        }

    };

    //重写bootstrapTable的initBody方法
    BootstrapTable.prototype.initBody = function(fixedScroll){
        _initBody.apply(this, Array.prototype.slice.apply(arguments));
        if(this.options.serverSelected){
            var that = this;
            this.$selectItem.off('click').on('click', function (event) {
                event.stopImmediatePropagation();

                var $this = $(this),
                    checked = $this.prop('checked'),
                    row = that.data[$this.data('index')];

                if ($(this).is(':radio') || that.options.singleSelect) {
                    $.each(that.options.data, function (i, row) {
                        row[that.header.stateField] = false;
                    });
                }

                row[that.header.stateField] = checked;

                if(checked){
                    var idIndex = $.inArray(row[that.options.serverSelectedField], that.serverSelectedDate.id);
                    if(idIndex==-1){
                        that.serverSelectedDate.id.push(row[that.options.serverSelectedField]);
                        that.serverSelectedDate.rows.push(row);
                    }
                }else{
                    var idIndex = $.inArray(row[that.options.serverSelectedField], that.serverSelectedDate.id);
                    if(idIndex>-1){
                        that.serverSelectedDate.id.splice(idIndex,1);
                        that.serverSelectedDate.rows.splice(idIndex,1);
                    }
                }

                if (that.options.singleSelect) {
                    that.$selectItem.not(this).each(function () {
                        that.data[$(this).data('index')][that.header.stateField] = false;
                    });
                    that.$selectItem.filter(':checked').not(this).prop('checked', false);
                }

                that.updateSelected();
                that.trigger(checked ? 'check' : 'uncheck', row, $this);
            })
        }

    }
    //重写bootstrapTable的checkAll_方法
    BootstrapTable.prototype.checkAll_ = function (checked) {
        var that = this;
        var rows;
        if(this.options.serverSelected){
            if (!checked) {
                rows = that.getSelections();
                $(rows).each(function(index, row){
                    var idIndex = $.inArray(row[that.options.serverSelectedField], that.serverSelectedDate.id);
                    if(idIndex>-1){
                        that.serverSelectedDate.id.splice(idIndex,1);
                        that.serverSelectedDate.rows.splice(idIndex,1);
                    }
                })
            }
        };
        _checkAll_.apply(that, Array.prototype.slice.apply(arguments));
        if(this.options.serverSelected){
            if (checked) {
                rows = that.getSelections();
                $(rows).each(function(index, row){
                    var idIndex = $.inArray(row[that.options.serverSelectedField], that.serverSelectedDate.id);
                    if(idIndex==-1){
                        that.serverSelectedDate.id.push(row[that.options.serverSelectedField]);
                        that.serverSelectedDate.rows.push(row);
                    }
                })
            }
        }
    };

    //重写bootstrapTable的check_方法
    BootstrapTable.prototype.check_ = function (checked, index) {
        if(this.options.serverSelected){
            var idIndex = $.inArray(this.options.data[index][this.options.serverSelectedField], this.serverSelectedDate.id);
            if(checked){
                if(idIndex==-1){
                    this.serverSelectedDate.id.push(this.options.data[index][this.options.serverSelectedField]);
                    this.serverSelectedDate.rows.push(this.options.data[index]);
                }
            }else{
                if(idIndex>-1){
                    this.serverSelectedDate.id.splice(idIndex,1);
                    this.serverSelectedDate.rows.splice(idIndex,1);
                }
            }
        }

        _check_.apply(this, Array.prototype.slice.apply(arguments));
    };

    //重写bootstrapTable的checkBy_方法
    BootstrapTable.prototype.checkBy_ = function (checked, obj) {
        if (!obj.hasOwnProperty('field') || !obj.hasOwnProperty('values')) {
            return;
        }

        var that = this,
            rows = [];
        $.each(this.options.data, function (index, row) {
            if (!row.hasOwnProperty(obj.field)) {
                return false;
            }
            if ($.inArray(row[obj.field], obj.values) !== -1) {
                var $el = that.$selectItem.filter(':enabled')
                    .filter(sprintf('[data-index="%s"]', index)).prop('checked', checked);
                row[that.header.stateField] = checked;
                if(this.options.serverSelected){
                    var idIndex = $.inArray(row[that.options.serverSelectedField], that.serverSelectedDate.id);
                    if(checked){
                        if(idIndex==-1){
                            that.serverSelectedDate.id.push(row[that.options.serverSelectedField]);
                            that.serverSelectedDate.rows.push(row);
                        }
                    }else{
                        if(idIndex>-1){
                            that.serverSelectedDate.id.splice(idIndex,1);
                            that.serverSelectedDate.rows.splice(idIndex,1);
                        }
                    }
                };
                rows.push(row);
                that.trigger(checked ? 'check' : 'uncheck', row, $el);
            }
        });
        this.updateSelected();
        this.trigger(checked ? 'check-some' : 'uncheck-some', rows);
    };


    //后端分页，预设定已选项
    BootstrapTable.prototype.setServerSelected = function(data){
        if(this.options.serverSelected){
            if(data.length>0){
                if(typeof data[0] == "object"){
                    this.serverSelectedDate.rows = data;
                    var field = this.options.serverSelectedField;
                    for(var i=0;i<data.length;i++){
                        this.serverSelectedDate.id.push(this.serverSelectedDate.rows[i][field]);
                    }
                }else{
                    this.serverSelectedDate.id = data;
                }
            }
        }

    };

    //后端分页，获取已选项
    BootstrapTable.prototype.getServerSelected = function(full){
        if(this.options.serverSelected){
            if(full){
                return this.serverSelectedDate.rows
            }else{
                return this.serverSelectedDate.id
            }
        }
    };


})(jQuery);